Skip to main content

立即执行函数(IIFE)是什么

立即执行函数就是:声明一个匿名函数,马上调用这个匿名函数

立即执行函数的作用

只有一个作用:创建一个独立的作用域,这个作用域里面的变量,外面访问不到(即避免「变量污染」)

for (var i = 0; i < 3; i++) {
setTimeout(() => {
console.log(i) // 打印出来的总是 3、3、3
}, 1000)
}
for (var i = 0; i < 3; i++) {
!(function (i) {
setTimeout(() => {
console.log(i) // 这时打印出来的是 0、1、2
}, 1000)
})(i)
}

参考文章

https://zhuanlan.zhihu.com/p/22465092